package com.cskaoyan.info;

/*

  当实际发生异常的时候，jvm会产生一个描述实际发生的错误的，异常对象
   当jvm ，拿着异常对象，和catch代码块，做类型匹配，一旦匹配成功，就会将异常对象，交给
   类型匹配成功的，catch代码块  ——> 如何将异常对象交给catch代码块？ 有点类似于方法调用时的参数传递


   1. String getMessage() 获取异常信息，返回字符串。
   2. String toString() 获取异常类名和异常信息，返回字符串。
   3. void printStackTrace()
        获取异常类名和异常信息，以及异常出现在程序中的位置,
        并打印到控制台
   4.void printStackTrace(PrintStream s) 了解
        该方法将异常内容保存在日志文件中，以便查阅。
 */
public class Demo1 {

    public static void main(String[] args) {

        try {

            int j = 10;
            // 除零异常
            int i = j / 0;
        }catch (ArithmeticException e) {

            // getMessage 方法
            String message = e.getMessage();
            // 3 异常的描述字符串，通常在解释发生错误的原因
            // 针对数组越界异常  3
            // 针对除零异常   / by zero
            //System.out.println(message);

            // toString方法
            String s = e.toString();
            //System.out.println(s); // java.lang.ArithmeticException: / by zero

            // printStackTrace()
            /*
                    java.lang.ArithmeticException: / by zero
	                    at com.cskaoyan.info.Demo1.main(Demo1.java:29)
             */
            e.printStackTrace();



        }
    }
}
